package edu.hubu.talentmanagementsystem.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import edu.hubu.talentmanagementsystem.model.ext.Resume;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;

@Mapper
public interface ResumeMapper extends BaseMapper<Resume> {
    int insert(Resume entity);

    int deleteById(Serializable id);

    int deleteByMap(@Param("cm") Map<String, Object> columnMap);

    int delete(@Param("ew") Wrapper<Resume> queryWrapper);

    int deleteBatchIds(@Param("coll") Collection<? extends Serializable> idList);

    int updateById(@Param("et") Resume entity);

    int update(@Param("et") Resume entity, @Param("ew") Wrapper<Resume> updateWrapper);

    Resume selectById(Serializable id);

    List<Resume> selectBatchIds(@Param("coll") Collection<? extends Serializable> idList);

    List<Resume> selectByMap(@Param("cm") Map<String, Object> columnMap);

    Resume selectOne(@Param("ew") Wrapper<Resume> queryWrapper);

    Integer selectCount(@Param("ew") Wrapper<Resume> queryWrapper);

    List<Resume> selectList(@Param("ew") Wrapper<Resume> queryWrapper);

    List<Map<String, Object>> selectMaps(@Param("ew") Wrapper<Resume> queryWrapper);

    List<Object> selectObjs(@Param("ew") Wrapper<Resume> queryWrapper);

    <E extends IPage<Resume>> E selectPage(E page, @Param("ew") Wrapper<Resume> queryWrapper);

    <E extends IPage<Map<String, Object>>> E selectMapsPage(E page, @Param("ew") Wrapper<Resume> queryWrapper);

}